§ 1.1 Field of the Invention
The present invention concerns creating and managing configuration information for use in data forwarding devices, such as routers for example. More specifically, the present invention concerns creating a group(s) of configuration information and applying such group(s) of configuration information, according to user instructions, to the set of configuration information used by such a data forwarding device.
§ 1.2 Related Art
The description of art in this section is not, and should not be interpreted to be, an admission that such art is prior art to the present invention. The present invention may be used for creating and managing configuration information used by data forwarding devices.
Data forwarding devices, such as routers and switches, may be interconnected to form networks. The interconnections may be such that each data forwarding device has a plurality of input lines and a plurality of output lines. A basic function of these devices is to forward data received at their input lines to the appropriate output lines. Routers, for example, may determine the appropriate output lines based on a destination addresses contained in the received data and forwarding tables. Switches may be configured so that data received at input lines are provided to appropriate output lines.
Such data forwarding devices may need to be configured appropriately. This may be done by entering configuration commands, through a keyboard or other type of interface, into a data forwarding device. For example, a command line user interface may be provided for configuring the device. Other types of information or commands may also be entered into the device through the keyboard or interface.
As data forwarding devices, such as routers for example, become more complex and perform more functions, the size and complexity of configuration information increases. Much of the configuration information is repeated. Entering and managing such configuration information has become difficult, tedious, and error-prone.
Templates and scripting have been used to help users enter configuration information. More specifically, templates are used to create sections of configuration data with a user-defined set of values. The user may then refine such values by hand. Scripting uses scripts, which are essentially programs, to generate sections of configuration data using user-defined values. Unfortunately, both templates and scripting generate large amounts of configuration data which often must be displayed to, and manipulated by, a local user. Further, although templates and scripts help to create configuration data, they are less useful for changing existing configuration data. Finally, scripting and templates are most useful when the authors of such scripts or templates know, in advance, the configuration information that will be needed and which of such configuration information will be repetitious.
Accordingly, there is a need to provide better techniques to create and manage configuration information.